// 插件模块
import axios from "axios";

const MyHttpServer = {};

MyHttpServer.install = Vue => {
  // 设置基准地址,因为基准地址是axios里面的属性
  axios.defaults.baseURL = "http://localhost:8888/api/";

  // 在请求发起之前,会先来到下面的回调函数
  // 添加请求拦截器
  axios.interceptors.request.use(
    function(config) {
      // 在发送请求之前做些什么
      console.log("拦截请求");
      console.log(config);
      if (config.url !== "login") {
        // 统一设置头部,在请求头中,提供token令牌
        const AUTH_TOKEN = localStorage.getItem("token");
        config.headers["Authorization"] = AUTH_TOKEN;
      }
      return config;
    },
    function(error) {
      // 对请求错误做些什么
      return Promise.reject(error);
    }
  );
  // 添加响应拦截器
  axios.interceptors.response.use(
    function(response) {
      // 对响应数据做点什么
      return response;
    },
    function(error) {
      // 对响应错误做点什么
      return Promise.reject(error);
    }
  );

  // 添加实例方法
  Vue.prototype.$http = axios;
};

// web如果想用，我们必须要导出这个插件
export default MyHttpServer;
